home *** CD-ROM | disk | FTP | other *** search
Wrap
import java.io.File; import vrml.BaseNode; import vrml.Browser; import vrml.Event; import vrml.field.ConstSFBool; import vrml.field.MFNode; import vrml.field.SFInt32; import vrml.field.SFNode; import vrml.field.SFString; import vrml.node.Node; import vrml.node.Script; public class DirBrowser extends Script { // $FF: renamed from: b vrml.Browser private Browser field_0; private File dir; private SFString dirname; private MFNode addChildren; private SFInt32 whichChoice; public static final int NOTOPENED = 0; public static final int OPENED = 1; public static final int HIDE = 2; private int opened; // $FF: renamed from: r int static int field_1; public static final float FILESIZE = 1000.0F; final String HEADER = "#VRML V2.0 utf8\n"; final String ROOT1R = "Transform { \n children [ \n Transform { translation 0 0 5 \n children [ \n Shape { \n appearance DEF MAT Appearance{ \n material Material{ \n diffuseColor 0 0 1 \n emissiveColor 0 0 1 \n transparency 0.5 \n } \n } \n geometry Box { size 0.2 0.2 10.0 }}] \n } \n Transform { \n rotation 1 0 0 1.57 \n children [ \n Shape { \n appearance USE MAT \n geometry Cylinder { radius "; final String ROOT2E = " height 0.01 } }\n ] \n }\n"; final String TAILER1R = " ]\n"; final String TAILER2E = "}\n"; final String ROUTING1T = "ROUTE "; final String ROUTING2S = ".isActive TO "; final String ROUTING3E = ".clicked \n"; final String DIROBJ1XY = "Transform { \n translation "; final String DIROBJ2U = " 0 \n children [ \n Transform { \n children [ \n Anchor { \n url \""; final String DIROBJ3T = "\" \n children [ \n DEF "; final String DIROBJ4S = " TouchSensor {} \n Shape { geometry Sphere {}} \n ] \n } \n ] \n } \n DEF SW Switch {\n whichChoice 0 \n choice [\n DEF DIR Transform { translation 0 0 -10 } \n ] \n } \n ] \n} \nDEF "; final String DIROBJ5F = " Script { \n url \"DirBrowser.class\" \n eventIn SFBool clicked \n field SFNode dirnode USE DIR \n field SFNode swnode USE SW \n field SFString dirname \""; final String DIROBJ6E = "\" \n} \n"; final String FILEOBJ1XYZ = "Transform { \n translation "; final String FILEOBJ2U = " children [ \n Anchor { \n url \""; final String FILEOBJ3H = "\" children [ \n Shape { \n appearance Appearance { \n material Material { \n diffuseColor 1 1 0 \n } \n } \n geometry Box { size 2.0 2.0 "; final String FILEOBJ4E = "}\n } \n ] \n } \n ] \n}\n"; public void initialize() { this.field_0 = ((BaseNode)this).getBrowser(); this.dirname = (SFString)((Script)this).getField("dirname"); Node var1 = (Node)((SFNode)((Script)this).getField("dirnode")).getValue(); this.addChildren = (MFNode)var1.getEventIn("addChildren"); var1 = (Node)((SFNode)((Script)this).getField("swnode")).getValue(); this.whichChoice = (SFInt32)var1.getExposedField("whichChoice"); } public void processEvent(Event var1) { if (var1.getName().equals("clicked")) { ConstSFBool var2 = (ConstSFBool)var1.getValue(); if (!var2.getValue()) { if (this.opened == 0) { this.openDirectory(this.dirname.getValue()); this.opened = 1; return; } if (this.opened == 1) { this.whichChoice.setValue(-1); this.opened = 2; return; } if (this.opened == 2) { this.whichChoice.setValue(0); this.opened = 1; } } } } public void openDirectory(String var1) { try { this.dir = new File(var1); } catch (Exception var17) { this.field_0.setDescription("Can not open " + var1); ((Throwable)var17).printStackTrace(); return; } if (!this.dir.isDirectory()) { this.field_0.setDescription("No such a directory: " + var1); } else { String[] var2 = this.dir.list(); int var3 = var2.length; if (var3 != 0) { float var4; float var5; if (var3 > 2) { var4 = (float)((Math.PI * 2D) / (double)var3); var5 = (float)((double)6.0F / ((double)2.0F * Math.sin((double)var4))); } else if (var3 == 2) { var4 = (float)Math.PI; var5 = 2.0F; } else { var4 = 0.0F; var5 = 0.1F; } String var6 = "#VRML V2.0 utf8\nTransform { \n children [ \n Transform { translation 0 0 5 \n children [ \n Shape { \n appearance DEF MAT Appearance{ \n material Material{ \n diffuseColor 0 0 1 \n emissiveColor 0 0 1 \n transparency 0.5 \n } \n } \n geometry Box { size 0.2 0.2 10.0 }}] \n } \n Transform { \n rotation 1 0 0 1.57 \n children [ \n Shape { \n appearance USE MAT \n geometry Cylinder { radius " + var5 + " height 0.01 } }\n ] \n }\n"; String var7 = ""; for(int var8 = 0; var8 < var3; ++var8) { Object var9 = null; Object var10 = null; float var11; float var12; if (var4 != 0.0F) { var11 = (float)((double)var5 * Math.sin((double)(var4 * (float)var8))); var12 = (float)((double)var5 * Math.cos((double)(var4 * (float)var8))); } else { var12 = 0.0F; var11 = 0.0F; } try { String var21 = var1 + "/" + var2[var8]; File var19 = new File(var21); if (var19.isDirectory()) { String var13 = "TS" + field_1; String var14 = "SC" + field_1; ++field_1; var6 = var6 + "Transform { \n translation " + var11 + " " + var12 + " 0 \n children [ \n Transform { \n children [ \n Anchor { \n url \"" + var21 + "\" \n children [ \n DEF " + var13 + " TouchSensor {} \n Shape { geometry Sphere {}} \n ] \n } \n ] \n } \n DEF SW Switch {\n whichChoice 0 \n choice [\n DEF DIR Transform { translation 0 0 -10 } \n ] \n } \n ] \n} \nDEF " + var14 + " Script { \n url \"DirBrowser.class\" \n eventIn SFBool clicked \n field SFNode dirnode USE DIR \n field SFNode swnode USE SW \n field SFString dirname \"" + var21 + "\" \n} \n"; var7 = var7 + "ROUTE " + var13 + ".isActive TO " + var14 + ".clicked \n"; } else { float var22 = (float)var19.length() / 1000.0F; if (var22 < 1.0E-6F) { var22 = 0.1F; } var6 = var6 + "Transform { \n translation " + var11 + " " + var12 + " " + -((double)var22 / (double)2.0F) + "\n" + " children [ \n Anchor { \n url \"" + var21 + "\" children [ \n Shape { \n appearance Appearance { \n material Material { \n diffuseColor 1 1 0 \n } \n } \n geometry Box { size 2.0 2.0 " + var22 + "}\n } \n ] \n } \n ] \n}\n"; } } catch (Exception var16) { this.field_0.setDescription("Can not open " + var10); ((Throwable)var16).printStackTrace(); return; } } var6 = var6 + " ]\n" + var7 + "}\n"; try { BaseNode[] var20 = this.field_0.createVrmlFromString(var6); if (var20 != null) { this.addChildren.setValue(var20); return; } } catch (Exception var15) { this.field_0.setDescription("can not create VRML node"); ((Throwable)var15).printStackTrace(); } } } } }